A content delivery network or content distribution network (CDN) is a system of computers containing copies of data, placed at various points in a network so as to maximize bandwidth for access to the data from clients throughout the network. A client accesses a copy of the data near to the client, as opposed to all clients accessing the same central server, so as to avoid a bottleneck near that server. A similar system, but one that can run dynamic content like executable scripts or applications is termed an application delivery network (ADN). Examples of such scripts are .php or .asp rather than just static content like an image. In the following description each reference or figure label that refers to CDN could be replaced by ADN in its description.
Content types include web objects, downloadable objects (media files, software, and documents), applications, real time media streams, and other components of internet delivery (DNS, routes, and database queries).
CDNs generally deliver content over TCP and UDP connections. TCP throughput over a network is impacted by both latency and packet loss. In order to reduce both of these parameters, CDNs traditionally place servers as close to the edge networks that users are on as possible. Theoretically the closer the content the faster the delivery, although network distance may not be the factor that leads to best performance. End users will likely experience less jitter, fewer network traffic peaks and surges, and improved stream quality—especially in remote areas. The increased reliability allows a CDN operator to deliver HD (High Definition) quality content with high Quality of Service, low costs and low network load.
Other benefits include Redundancy (alternative networks & servers ready on stand by), Load Balancing (distribution across multiple servers & networks), High Availability (quick recovery from any failure or outage), and Failover (secondary systems take over when the primaries fail).
If there is a server failure e.g. caused by a power cut, no data is lost and the end user is redirected to a copy of the website or video on another server at another data centre either in their city or if required another country. This allows for 100% Service Level Agreements and military grade hosting. CDN delivery is essential for Web 2.0 applications and next generation internet delivery at high bitrates with large volumes. e.g. Video and IPTV (e.g. BT Vision, FiOS TV).
There is a clear trend in the Internet hosting industry for a move from centralised hosting to CDN delivery. Currently there are a huge number of hosting companies who serve all their customer's content from a single data centre in a single city and country. This means slow delivery of a customer's content. It is unreliable and subject to failures with no alternative source of delivery or network path to the end user.
Many providers still use only one physical server e.g. a shared or dedicated server product. If a server fails the customer gets a ‘not found’ or similar type of error in their web browser or media player until the ISP (Internet Service Provider) can get a person to fix the server—a slow process. Some customer sites have been known to go down for days.
If the hosting provider only uses one network provider that becomes overloaded or subject to a denial of service attack by hackers, the delivery of all customers' content on that network will be affected even if they are not the target. This can also happen at busy times of the day and is known as network congestion.
Backups do not take place in real time and so customer content is usually stored in a single data centre even with a regular backup strategy. It is not replicated automatically to servers distributed globally and is therefore vulnerable at a single point of failure to power cut, fire or other outage incident.